package com.qijian.maindata.domain.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qijian.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.Date;

@Data
@ToString
public class ProjectHomeEventVo {

    @JsonSerialize(using = ToStringSerializer.class)
    private Long bomId;
    private String bomName;
    @JsonSerialize(using = ToStringSerializer.class)
    private Long projectId;
    @JsonSerialize(using = ToStringSerializer.class)
    private Long userId;

    @Excel(name = "开工令", sort=1)
    @ApiModelProperty(value = "开工令")
    private String projectNo;
    @Excel(name = "项目名称", sort=3)
    @ApiModelProperty(value = "项目名称")
    private String projectName;
    @Excel(name = "机台号", sort=2)
    @ApiModelProperty(value = "机台号")
    private String machineNo;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "开始时间")
    private Date startTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "结束时间")
    private Date endTime;
    @ApiModelProperty(name = "项目经理")
    private String nickName;
    @ApiModelProperty(name = "项目经理联系方式")
    private String phoneNumber;
    @ApiModelProperty(name = "工单延期")
    private Integer delay;
    @Excel(name = "预计成本", sort=4)
    @ApiModelProperty(name = "预计成本")
    private BigDecimal budgetCost;
    @Excel(name = "实际成本", sort=5)
    @ApiModelProperty(name = "实际成本")
    private BigDecimal actualCost;
    @ApiModelProperty(name = "一次合格率")
    private BigDecimal qualified;
    @ApiModelProperty(name = "项目进度")
    private BigDecimal progress;
    @ApiModelProperty(name = "计划进度")
    private BigDecimal preProgress;
    @ApiModelProperty(name = "NCR")
    private Integer ncr;
    private BigDecimal shunshi;
    private Boolean isDist;
    @JSONField
    private Integer exceptionCount;
    private String flowableIds;

    private String shipmentDate;

    private Integer isShipped;

    @ApiModelProperty(name = "成本异常类型")
    private Integer costExceptionType;
    @ApiModelProperty(name = "成本异常Id")

    @JsonSerialize(using = ToStringSerializer.class)
    private Long mainProjectExceptionId;

    private String email;

    @ApiModelProperty(value = "生产交期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date productReleaseDate;

    @ApiModelProperty(value = "生产交期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date lastEndTime;

    @ApiModelProperty(value = "商务交期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date businessReleaseDate;

    @ApiModelProperty(value = "是否已排产")
    private Boolean isPlan;

    @ApiModelProperty(value = "计划排产是否已排产")
    private Boolean isNewPlan;
}
